package com.rainyun.rc.command.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**用于设置指令属性(加到指令对应的方法,字段,类上)<br>
 * 可以使用的属性有: <br>
 * perm: string 权限 <br>
 * help: string 指令默认描述 <br>
 * order: int 指令排序 <br>
 * ingame: boolean 只能在游戏内 <br>
 * console: boolean 只能在后台 <br>
 * tab: string 指令补全器名称 <br>
 * check: string 验证中间件名称 <br>
 * alias: string[] 别名(仅适用于根指令)<br>
 * (属性名称: 值类型)<br>
 * 出现多段指令时,一般属性会赋在最后一个普通节点<br>
 * 而tab属性会赋值在所有值型节点上,check属性会赋值在最后一个节点(运行节点)<br>
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface CmdAttr {
	/**所需权限*/
	String perm() default "";
	/**默认帮助信息*/
	String help() default "";
	/**只能在游戏内*/
	boolean ingame() default false;
	/**只能在后台*/
	boolean console() default false;
	/**异步执行*/
	boolean async() default false;
	/**指令补全器名称*/
	String tab() default "";
	/**验证中间件名称*/
	String check() default "";
	/**指令排序(升序排序)*/
	int order() default 0;
	/**别名*/
	String[] alias() default {};
}
